Some business entities pay for each copy of software they install. The entity may receive only a limited number of physical copies of a particular program or suite of programs, and the entity pays for the right to install the software on a set number of computers. Because the entity must pay for the number of computers on which the software is installed, if some of the users of those computers are not using the software, the entity pays for software which is not being used, and thus, the entity is not using its software budget efficiently.
Even if a user is using the software, the user may not be using the software sufficiently to justify its cost, and again, the entity's software budget may not be used efficiently. For example, if a user is using a computer program infrequently or for a very short period of time, the entity may be able to provide a less expensive computer program to those users.
However, it is difficult to determine whether a user of a computer system on which software is installed is using the software sufficiently to justify its cost, and the thresholds for determining whether a user is sufficiently using software may change over time as the price of the software and alternative software changes and the availability of alternatives changes. Surveys of users can be performed and entered into a database, but surveys have their own inherent problems. Self surveys of users are cumbersome for the users to perform, and even if performed, the users may not accurately report their usage of the software, making the survey inaccurate. Alternatively, a surveyor may sit next to the person and watch their use of the software. Although this process can result in accurate survey results, it is time consuming and may make the user uncomfortable. Furthermore, surveys would have to be repeated over and over as prices and availability of alternatives changed, making the use of surveys too expensive to offset the savings that they could achieve.
What is needed is a system and method that can accurately report software usage, and provide up to date information on usage to allow software to be efficiently allocated according to any set of rules.